#include <bits/stdc++.h>
// 2025/04/05
// tag: MQueue
// Author: Forever
using namespace std;

class MQueue {
private:
    deque<int> q, pos;

public:
    void push(int x, int i)
    {
        while (!q.empty() && q.back() > x)
            q.pop_back(), pos.pop_back();
        q.push_back(x), pos.push_back(i);
    }
    void pop(int i)
    {
        if (!pos.empty() && pos.front() <= i)
            q.pop_front(), pos.pop_front();
    }
    int get_min()
    {
        return q.front();
    }
    int get_max()
    {
        return q.back();
    }
};